#ifndef __NJGIS_NJSERVICEAPI_C_H__
#define __NJGIS_NJSERVICEAPI_C_H__

#include "../../include/NxServiceAPI.h"

//////////////////////////////////////////////////////////////////////////
/* INjServer */

extern "C" NJGIS_SERVICE void* njgis_service_createServerHandle(char* ip, int port);

extern "C" NJGIS_SERVICE void* njgis_service_createServiceAccessHandle(void* server);

//////////////////////////////////////////////////////////////////////////
/* INjServiceAccess */

extern "C" NJGIS_SERVICE void* njgis_service_createModelServiceList(void* access);

extern "C" NJGIS_SERVICE int njgis_service_cleanModelServiceListHandle(void* list);

extern "C" NJGIS_SERVICE int njgis_service_getModelServiceCount(void* list);

extern "C" NJGIS_SERVICE void* njgis_service_getModelServiceByIndex(void* list, int index);

extern "C" NJGIS_SERVICE void* njgis_service_createDataConfiguration( void* access );

//////////////////////////////////////////////////////////////////////////
/* INjModelService */

extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceOID(void* ms);

extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceName(void* ms);

extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceType(void* ms);

extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceDetailURL( void* ms );

extern "C" NJGIS_SERVICE const char* njgis_service_getModelServicePID( void* ms );

extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceMID( void* ms );

extern "C" NJGIS_SERVICE bool njgis_service_getModelServiceRegistered( void* ms );

extern "C" NJGIS_SERVICE bool njgis_service_getModelServiceRegistered( void* ms );

extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceVersion( void* ms );

extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceDescription( void* ms );

extern "C" NJGIS_SERVICE int njgis_service_getModelServicePlatform( void* ms );

extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceDeploymentTime( void* ms );

extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceIMG( void* ms );

extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceDeployorName( void* ms );

extern "C" NJGIS_SERVICE const char* njgis_service_getModelServiceDeployorEmail( void* ms );

extern "C" NJGIS_SERVICE int njgis_service_getModelServiceStatus( void* ms );

extern "C" NJGIS_SERVICE int njgis_service_getModelServiceLimitation( void* ms );

extern "C" NJGIS_SERVICE int njgis_service_getModelServicePermission( void* ms );

extern "C" NJGIS_SERVICE const char* njgis_service_serviceInvoke( void* ms, void* config);

extern "C" NJGIS_SERVICE void njgis_service_serviceRefresh( void* ms );

//////////////////////////////////////////////////////////////////////////
/* INjDataConfiguration */

extern "C" NJGIS_SERVICE int njgis_service_getDataConfigurationCount( void* config );

extern "C" NJGIS_SERVICE int njgis_service_insertConfigurationData( void* config, char* state, char* eventname, char* dataid, bool destoryed, bool requested, bool optional );

extern "C" NJGIS_SERVICE const char* njgis_service_getConfigurationData( void* config, char* state, char* eventname );

#endif